Client/Server computing has become a common technology enabling resource sharing by network connected users. As prices have decreased and performance criteria have improved, client/server technology has more and more been applied to the sharing of digital multimedia data. Encoding digital multimedia data, especially video data, requires large amounts of storage. A real time constant rate of data delivery is also required lest there be jitter and break up in what should be smooth motion video. These storage and data delivery requirements present unique problems in multimedia client/server computing environments.
Available systems usually provide content loading, input, and data streaming, output, as separate and nonoverlapping operations steps. Therefore, these operations tend to be time consuming, inefficient and not very satisfactory to users.
Typically, servers serve client applications via programming interfaces which vary among themselves. These server access differences require interface specific applications to be written. Thus, it is very difficult to take advantage of the capabilities available in the server for concurrency and real time shared access to multimedia data actually stored in real time.
It would, therefore, be desirable to be able to write integrated applications for concurrently accessing in real time multimedia data available to one or more servers interconnected over one or more networks. There is a need for multimedia server programming services having the flexibility to permit simultaneous multimedia data inputs and outputs while sharing resources available at the server and over the network. Such integrated applications would allow for optimization of server resource utilization with no diminution of service quality. Integrated, network-type transparent applications would enable the request of a combination of services for multimedia data loading and streaming. Further, it is desirable that server management of server and network resource sharing be transparent to provide to the ability to scale up to support additional clients.
In current use are systems for delivering video files from a network for view. Often, it is necessary to prepare for viewing by downloading the video file, which means adequate storage space must be available. It would be desirable to have real time video play; that is, to provide video stream without the necessity of first downloading and possibly storing the entire file before play can begin.
There have been prior art solutions proposed for some aspects of the problems noted above. For example, U.S. Pat. No. 5,555,244 to Gupta et al, issued Sep. 10, 1996, describes a scalable multimedia network and the underlying message structure for APIs useful in the telephony and cable television industries for providing interactive multimedia services to end users. U.S. Pat. No. 5,307,456 to MacKay, issued Apr. 26, 1994 relates to an integrated multimedia production and authoring system and includes a real time network for interconnecting a variety of multimedia resources and a number of production control workstations. The system is scalable to allow any computer system to be used by an individual producer as an edit workstation for accessing any of the network available resources through an intuitive graphical user interface (GUI) to create, edit and store multimedia productions. U.S. Pat. No. 5,508,942 to Agarwal, issued Apr. 16, 1996 relates to intra/inter decision rules for encoding and decoding video signals for used in point-to-point live audio, video, data conferencing between two PC systems. U.S. Pat. No. 5,550,982 to Long et al, issued Aug. 27, 1996 discloses a video application server including software for managing multiple simultaneous video streams transmitted across a local area network (LAN) in a client/server environment.
In a multimedia client/server environment with real time delivery requirements, there is a critical need for resource management. Optimum utilization of system resources, including disk, CPU, bus, and network adapter bandwidth, while avoiding system degradation is essential. Prior art efforts to reach such a level of resource management have not been entirely successful. For example, U.S. Pat. No. 5,408,465 to Gusella et al., issued Apr. 18, 1995, relates to an admission control scheme which does not address control of resources within a given machine in a network. U.S. Pat. No. 5,325,525 to Shan et al., issued Jun. 28, 1994, relates to a resource allocation technique in a best efforts environment, which is not immediately applicable in real time situations. Similarly U.S. Pat. No. 5,548,724 to Akazawa et al., issued Aug. 20, 1996, describes load balancing across file servers in a best efforts environment, not readily adaptable to the constraints of real time situations. U.S. Pat. No. 5,630,007 to Kobayashi et al., issued May 13, 1997, addresses server load distribution in a manner that is independent of considerations of current loads on server or disks. U.S. Pat. No. 5,544,327 to Dan et al., issued Aug. 6, 1996, deals with disk load in a multi client set up, but does not address the effects of current load levels of the server CPU, bus or network adapters.